package cn.koala.key.complaint.service;

import cn.koala.key.complaint.entity.dto.ComplaintSearchDTO;
import cn.koala.key.complaint.entity.dto.ComplaintSearchModel;
import cn.koala.key.complaint.entity.vo.*;
import cn.seed.common.core.Result;
import cn.seed.common.core.ResultList;

import java.util.List;

/**
 * @author 38752
 */
public interface ComplaintOrderService {

    Result<?> addComplaintOrder(CustomerComplaintOrderVO complaintOrderVO, String oprNo, String oprName);

    Result<?> processComplaintOrder(String orderNo, String oprNo, String oprName);

    Result<?> commitCompliantOrder(CustomerComplaintOrderSubmitVO complaintOrderVO, String oprNo, String oprName);

    Result<?> cityApproveComplaintOrder(CustomerComplaintOrderApproveVO customerComplaintOrderApproveVO,String oprNo, String oprName);

    Result<?> hqApproveComplaintOrder(CustomerComplaintOrderApproveVO customerComplaintOrderApproveVO,String oprNo, String oprName);

    Result<ComplaintOperateLogVO> getRefuseReason(String orderNo);

    Result<List<ComplaintOperateLogVO>> listOperateLogByOrderNo(String orderNo);

    Result<ComplaintOperateLogVO> getOperateLogById(Long id);

    Result<ComplaintOrderDetailVO> orderDetail(String orderNo);


    Result<ResultList<ComplaintSearchDTO>> searchByCondition(ComplaintSearchVO complaintSearchVO);

    Result<ComplaintOrderFillResultVO> fillComplaintOrder(String orderNo,String repairOrderNo);

    List<ComplaintSearchModel> complaintSearchPrint(ComplaintSearchVO complaintSearchVO);

}
